A media content provider or distributor may deliver media contents to various client devices such as televisions, notebook computers, and mobile handsets. The media content provider may support a plurality of media encoder and/or decoders (codecs), media players, video frame rates, spatial resolutions, bit-rates, video formats, or combinations thereof. A media content may be converted from a source representation to various other representations to suit the different user devices.
A media content may comprise a media presentation description (MPD) and a plurality of segments. The MPD may be an extensible markup language (XML) file describing the media content, such as its various representations, uniform resource locators (URLs), and other characteristics. As one of ordinary skill in the art understands, the media content may be divided into various hierarchies including periods, adaptation sets (AS), representations, and segments.
In adaptive streaming, when a media content is delivered to a client or user device, the user device may select appropriate segments dynamically based on a variety of factors, such as network conditions, device capability, and user choice. Adaptive streaming may include various technologies or standards implemented or being developed, such as Dynamic Adaptive Streaming over Hypertext Transfer Protocol (HTTP) (DASH), HTTP Live Streaming (HLS), or Internet Information Services (IIS) Smooth Streaming. For example, the user device may select a segment with the highest quality (e.g., resolution or bit-rate) possible that can be downloaded in time for playback without causing stalling or rebuffering events in the playback. Thus, the user device may seamlessly adapt its media content playback to changing network conditions.
In adaptive streaming, there may be needs to specify and construct URLs for accessing streaming media segments, in order to provide flexibility and reduce complexity of streaming MPDs, such as the ones used in Moving Picture Expert Group (MPEG) DASH. Some existing solutions, such as URL parameter insertion mechanisms in the URL template specification in the DASH standard, may support parameter specification for URL parameter insertion (or substitution) with simple types. Thus, it is desirable to expand the capability of URL parameter insertion, e.g., to include more types of parameters.